package OrderReq

import (
	"gdshop-back-end-go/client-api/app/response/GoodsResp"
	"gdshop-back-end-go/common/request/BaseReq"
)

type Submit struct {
	BaseReq.MemberLogin
	//SubmitList []*SubmitItem
	AddressId int // 收货地址ID
	// 第一期先做单商家
	SubmitItem
	CartIds []int // 购物车ID 用于下单成功后删除购物车

	CouponIds []int // 使用优惠券IDS
}
type GoodsItem struct {
	GoodsId       int  // 商品ID
	GoodsOptionId uint // 商品规格ID
	GoodsNum      int  // 商品数量
	TuanData
}

// 按商家分组提交订单
type SubmitItem struct {
	BaseReq.MemberLogin
	StoreId   int          // 店铺ID
	GoodsList []*GoodsItem // 商品
	CouponId  int          // 优惠券ID
	InvoiceId int          // 发票ID
}

// OrderSubCoupon 子订单，优惠券
type OrderSubCoupon struct {
	Hash            string `json:"-"`                        // 数据标识符
	StoreId         int    `orm:"store_id"         json:"-"` // 所属店铺 0为自营
	CouponId        int    `json:"coupon_id"`                // 优惠券ID
	MemberCouponId  int    `json:"member_coupon_id"`         // 我拥有的优惠券ID
	GoodsId         int    `json:"goods_id"`                 // 商品ID
	GoodsCategoryId int    `json:"goods_category_id"`        // 商品分类ID
	GoodsOptionId   int    `json:"goods_option_id"`          // 商品规格ID
	Price           int64  `json:"price"`                    // 单价
	Num             int64  `json:"num"`                      // 购买数量
	TotalPrice      int64  `json:"total_price"`              // 总价 单位分
	Paid            int64  `json:"paid"`                     // 应付 单位分
	Discount        int64  `json:"discount"`                 // 优惠金额 单位分
}

type OrderSubItem struct {
	Hash string // 数据标识符
	GoodsResp.Details
	Total      int   // 购买数量
	TotalPrice int64 // 总价 单位分
	OptionId   int
}

// 检测后返回的数据，内部使用
type CheckSubmitItem struct {
	StoreId            int              // 店铺ID
	StoreModel         int              // 店铺 model
	GoodsList          []*OrderSubItem  // 商品
	CouponModel        int              // 优惠券 Model
	UseCouponOrderSubs []OrderSubCoupon // 使用了优惠券的子订单，有重复
	InvoiceModel       int              // 发票 Model
	TotalPrice         int64            // 总价
	OriginalTotalPrice int64            // 原订单总价（商品合计，未包含任何优惠）单位分
	Freight            int              // 运费
	GoodsKey           string           // 商品缩略信息方便搜索
}
